//
//  NSObject+SX_BaseModelData.h
//  SX_DataModel
//
//  Created by Ganide on 2018/7/4.
//  Copyright © 2018年 Ganide. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface NSObject (SX_BaseModelData)
/*
 * 对象 直接传入一个 字典 即可返回相应的数据模型
 * @param obj 需要转换成模型的 字典
 * @param id 转换以后的数据模型
 */
- (id) sxInitBaseModelDictionry:(NSDictionary *)obj;
/*
 * 数据模型类 传入字典字典 返回相应的数据模型
 * @param obj 需要转换成模型的 字典
 * @param id 转换以后的数据模型
 */
+ (id) sxBaseModelDictionry:(NSDictionary *)obj;
/*
 * 任意对象 掉用这个方法 传入需要转成数据模型的 类和数组 即返回一个模型数组
 * @param dataArr 需要转换成模型的 数组
 * @param objClass 需要转换模型的 类
 */
- (NSArray *) sxBaseModelClass:(Class)objClass dataArr:(NSArray *)dataArr;
/*
 * 需要转换的模型的类 掉用这个方法 传入需要转成数据模型的
 * @param dataArr 需要转换成模型的 数组
 */
+ (NSArray *) sxBaseModelDataArr:(NSArray *)dataArr;
/*
 * json数据转换成响应的 数据模型
 * @param json 需要转换成数据模型的json数据
 */
- (id)sxInitBaseModelJson:(id)json;
/*
 * json数据转换成响应的 数据模型
 * @param json 需要转换成数据模型的json数据
 */
+ (id) sxBaseModelJson:(id)json;
#pragma ================ mark 对象转字典=========
/*
 * 对象调用方法以后返回对应的字典
 *
 */
- (NSDictionary *)dictFromObj;
/*
 * 对象调用方法以后返回对应的字典
 * @param obj 需要转换成字典的对象
 */
+ (NSDictionary *)dictFromNeedObj:(id)obj;
/*
 * 把存放有其他对象的数据模型 转换成 一般数组数据
 * @param objArray 需要转换成一般数据数组
 */
- (NSArray *)arrayFromArrObj:(NSArray *)objArray;
/*
 * 把存有其他数据模型对象的 字典 转成不含油数据模型对象的字典
 * @param objArray 需要转换成一般数据数组
 */
- (NSDictionary *)dictFromdictObj:(NSDictionary *)dict;
@end
